| Logo de R | Logo de R Studio |
|---|---|
En la dirección https://cran.r-project.org/ podrá descargar R para sistemas operativos Linux, Mac OS y Windows.
R Studio es un ambiente de desarrollo integrado (IDE) que facilita la programación en R. En la dirección https://www.rstudio.com/ se descarga la versión de R Studio, disponible tambien para sistemas operativos linux, OS y windows.
R Studio esta dividido en 4 partes:
Pantalla RStudio
R y R Studio tienen como directorio de trabajo la carpeta de Documentos de la computadora donde se instalan.
| Simbolo | Operación |
|---|---|
| +, -, *, / log() | suma, resta, producto, cociente logaritmo |
| %%, %/%, ^ | módulo, cociente entero, potencia |
| ==, !=, ! | igual, distinto, no |
| >, >=, <, <= | mayor que, mayor o igual que, menor que, menor o igual que |
| :, seq() | generar una serie |
Alguna operaciones básicas y lógicas:
1+6
[1] 7
2*8
[1] 16
log(10) #logaritmo natural si quiere cambiar de base por ej log10()
[1] 2.302585
9 %% 4
[1] 1
9%/%4
[1] 2
9==4
[1] FALSE
9>=4
[1] TRUE
1:50
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
[28] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
seq(1,50,.1)
[1] 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5
[17] 2.6 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0 4.1
[33] 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7
[49] 5.8 5.9 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.0 7.1 7.2 7.3
[65] 7.4 7.5 7.6 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9
[81] 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10.0 10.1 10.2 10.3 10.4 10.5
[97] 10.6 10.7 10.8 10.9 11.0 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12.0 12.1
[113] 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13.0 13.1 13.2 13.3 13.4 13.5 13.6 13.7
[129] 13.8 13.9 14.0 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15.0 15.1 15.2 15.3
[145] 15.4 15.5 15.6 15.7 15.8 15.9 16.0 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9
[161] 17.0 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18.0 18.1 18.2 18.3 18.4 18.5
[177] 18.6 18.7 18.8 18.9 19.0 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20.0 20.1
[193] 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21.0 21.1 21.2 21.3 21.4 21.5 21.6 21.7
[209] 21.8 21.9 22.0 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23.0 23.1 23.2 23.3
[225] 23.4 23.5 23.6 23.7 23.8 23.9 24.0 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9
[241] 25.0 25.1 25.2 25.3 25.4 25.5 25.6 25.7 25.8 25.9 26.0 26.1 26.2 26.3 26.4 26.5
[257] 26.6 26.7 26.8 26.9 27.0 27.1 27.2 27.3 27.4 27.5 27.6 27.7 27.8 27.9 28.0 28.1
[273] 28.2 28.3 28.4 28.5 28.6 28.7 28.8 28.9 29.0 29.1 29.2 29.3 29.4 29.5 29.6 29.7
[289] 29.8 29.9 30.0 30.1 30.2 30.3 30.4 30.5 30.6 30.7 30.8 30.9 31.0 31.1 31.2 31.3
[305] 31.4 31.5 31.6 31.7 31.8 31.9 32.0 32.1 32.2 32.3 32.4 32.5 32.6 32.7 32.8 32.9
[321] 33.0 33.1 33.2 33.3 33.4 33.5 33.6 33.7 33.8 33.9 34.0 34.1 34.2 34.3 34.4 34.5
[337] 34.6 34.7 34.8 34.9 35.0 35.1 35.2 35.3 35.4 35.5 35.6 35.7 35.8 35.9 36.0 36.1
[353] 36.2 36.3 36.4 36.5 36.6 36.7 36.8 36.9 37.0 37.1 37.2 37.3 37.4 37.5 37.6 37.7
[369] 37.8 37.9 38.0 38.1 38.2 38.3 38.4 38.5 38.6 38.7 38.8 38.9 39.0 39.1 39.2 39.3
[385] 39.4 39.5 39.6 39.7 39.8 39.9 40.0 40.1 40.2 40.3 40.4 40.5 40.6 40.7 40.8 40.9
[401] 41.0 41.1 41.2 41.3 41.4 41.5 41.6 41.7 41.8 41.9 42.0 42.1 42.2 42.3 42.4 42.5
[417] 42.6 42.7 42.8 42.9 43.0 43.1 43.2 43.3 43.4 43.5 43.6 43.7 43.8 43.9 44.0 44.1
[433] 44.2 44.3 44.4 44.5 44.6 44.7 44.8 44.9 45.0 45.1 45.2 45.3 45.4 45.5 45.6 45.7
[449] 45.8 45.9 46.0 46.1 46.2 46.3 46.4 46.5 46.6 46.7 46.8 46.9 47.0 47.1 47.2 47.3
[465] 47.4 47.5 47.6 47.7 47.8 47.9 48.0 48.1 48.2 48.3 48.4 48.5 48.6 48.7 48.8 48.9
[481] 49.0 49.1 49.2 49.3 49.4 49.5 49.6 49.7 49.8 49.9 50.0
Para asignar valor a variables se usan los simbolos <- o =
x <- 8
y <- 1+6
z = seq(1,50,.5)
Si se quiere que se muestren los valores solo debe teclear los nombres y ejecutar (ejecutar desde editor de texto o desde consola)
x
[1] 8
y
[1] 7
z
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5
[17] 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.5 13.0 13.5 14.0 14.5 15.0 15.5 16.0 16.5
[33] 17.0 17.5 18.0 18.5 19.0 19.5 20.0 20.5 21.0 21.5 22.0 22.5 23.0 23.5 24.0 24.5
[49] 25.0 25.5 26.0 26.5 27.0 27.5 28.0 28.5 29.0 29.5 30.0 30.5 31.0 31.5 32.0 32.5
[65] 33.0 33.5 34.0 34.5 35.0 35.5 36.0 36.5 37.0 37.5 38.0 38.5 39.0 39.5 40.0 40.5
[81] 41.0 41.5 42.0 42.5 43.0 43.5 44.0 44.5 45.0 45.5 46.0 46.5 47.0 47.5 48.0 48.5
[97] 49.0 49.5 50.0
Una primera opción es haciendo uso de la función concatenar c() . Ésta se usa para crear un vector.
La siguiente instrucción crea el objeto q y le asigna un vector
q <- c(1,2,3,4,5,6) # vector numérico
s <- c("si","no") # vector de caracteres
q # para imprimir en pantalla
[1] 1 2 3 4 5 6
s
[1] "si" "no"
Se puede unir vectores con las funciones cbind() o rbind(). Por ejemplo, crear tres vectores de 5 elementos y asignar un nombre (edad,altura,nombre).
# Se crean los 3 objetos
edad <- c(20,25,31,45,14)
altura <- c(1.60, 1.8,1.7,1.85,1.7)
nombre <- c("Yola","Pedro","Carlos","Maru","Ginger")
# Unir dos vectores rbind(x,y,z) y cbind(x,y,z) y asignar un nombre w
w1<-rbind(nombre,edad,altura)
w2<-cbind(nombre,edad,altura)
# Se muestran los objetos creados
w1
[,1] [,2] [,3] [,4] [,5]
nombre "Yola" "Pedro" "Carlos" "Maru" "Ginger"
edad "20" "25" "31" "45" "14"
altura "1.6" "1.8" "1.7" "1.85" "1.7"
w2
nombre edad altura
[1,] "Yola" "20" "1.6"
[2,] "Pedro" "25" "1.8"
[3,] "Carlos" "31" "1.7"
[4,] "Maru" "45" "1.85"
[5,] "Ginger" "14" "1.7"
Para leer datos de un documento csv se usa la función read.csv(“nombre de archivo”)
# El siguiente código asigna al objeto w el archivo de datos EjemploEstudiantes.csv que se encuentra en el directorio "Documentos" y la opción header=T le indican a R que en el primer renglón se ubican los nombres de las variables.
w<-read.csv("EjemploEstudiantesM.csv",header = T)
# opciOnal y posiblemente mejor
#read.csv(choose.files(),header = T)
Con los vectores se pueden realizar operaciones:
edad+2 # Suma a las edades 2
[1] 22 27 33 47 16
altura^2 # las alturas se elevan al cuadrado
[1] 2.5600 3.2400 2.8900 3.4225 2.8900
edad==altura # verifica si edad y altura son identicos
[1] FALSE FALSE FALSE FALSE FALSE
edad==edad
[1] TRUE TRUE TRUE TRUE TRUE
Los [ ] se usan para acceder a elementos en un vector, por ejemplo, x[3:4] sirve para acceder a la posición 3 y 4 del objeto x. Tambienpodremos usar x[c(3,4)]
edad[2] # accede al elemento 2 de la edad
[1] 25
edad[2:4] # accede a los elementos 2,3 y 4
[1] 25 31 45
edad[c(2,3,4)]
[1] 25 31 45
edad[edad<40] # accede a los elementos que cumplela condición de
[1] 20 25 31 14
# ser menores que 40
edad[edad<40 & edad>20] # elementos que son menores que 40 y mayores que 20
[1] 25 31
edad[edad<40 | edad>20] # elementos que son menores que 40 o mayores que 20
[1] 20 25 31 45 14
De la misma manera, para acceder a los elementos de una matriz se usa cualquiera de los siguientes formatos: x[row,column], x[,“Height”] , x[,2]
w2[1,2] # accede al lemento 1 de la columna 2
edad
"20"
w2[ ,"edad" ] # accede a la columna edad
[1] "20" "25" "31" "45" "14"
Para la selección de una columna o de algún elemento de un dataframe tambien se usan los siguientes formatos:
w$Matematicas
[1] 7.0 7.5 7.6 5.0 6.0 7.8 6.3 7.9 6.0 1.8
w[w$genero=="M",]
w[w$Matematicas>6,]
Considerando que tenemos un dataframe, para realizar un análisis descriptivo y de inferencia
Deben ubicarse el mínimo y el máximo de los datos, calcularse las medidas de tendencia central y los percentiles.
# Para el mínimo y el máximo la función es min() y max()
min(w$Matematicas)
[1] 1.8
max(w$Matematicas)
[1] 7.9
# Tres medidas de tendencia central usadas son el promedio, la mediana y la moda. Para la media se usa la función mean(), para la mediana median() y para la moda podemos usar table()
mean(w$Ciencias)
[1] 7.65
median(w$Matematicas)
[1] 6.65
table(w$Matematicas)
1.8 5 6 6.3 7 7.5 7.6 7.8 7.9
1 1 2 1 1 1 1 1 1
# Los cuantiles son aquellos valores que dejan por debajo de ellos un determinado porcentaje de los datos
quantile(w$Matematicas)
0% 25% 50% 75% 100%
1.800 6.000 6.650 7.575 7.900
Las medidas de localización deben acompañarse con una medida de la variación de los datos. Usualmente se calculan la amplitud, varianza y desviación estándar.
# La amplitud se defime como la diferencia del valor máximo y el mímino
range(w$Matematicas)
[1] 1.8 7.9
# La varianza y la desviación estándar
var(w$Matematicas)
[1] 3.394333
sd(w$Matematicas)
[1] 1.842372
La forma que tiene la distribución de las frecuencias de los datos es importante por ejemplo al seleccionar la medida de tendencia central a usar o la prueba estádistica que aplica para ese tipo de datos.
El gráfico útil para ver la forma de los datos es el histograma, cuya función en R es hist()
hist(w$Matematicas)
En el caso de variables cualitativas, puede construirse un gráfico de barras o uno de pastel
# Primero se hace una tabla con las frecuencias
frecuencia <- table(w$genero)
barplot(frecuencia, main="Cantidad de hombres y mujeres")
pie(frecuencia, main="Cantidad de hombres y mujeres")
Los valores muy grandes o muy pequeños afectan a las medidas de localización y a las de variabilidad, por esto, es importante verificar la existencia de éstos valores que en Estadística se denominan “extremos”.
Hay varios métodos para detectar valores extremos, uno de ellos son los boxplot o graficos de caja y bigote.
# Si un dato queda fuera de los bigotes de la caja, es extremo
boxplot(w$Matematicas)
# Genera un boxplot para las columnas de la 3 a la 6 del objeto W
boxplot(w[,c(3:6)])
# Genera un boxplot para las calificaciones de Matemáticas y Ciencias
boxplot(w$Matematicas,w$Ciencias)
Es importante en ocasiones estudiar la relación que existe entre las variables de interés. En éstas situaciones el diagrama de dispersión y el coeficiente de correlación son dos herramientas indispensables.
# El gráfico de dispersión de las calificaciones de Educación Física y Español
plot(w$EdFisica,w$Ciencias)
# El coeficiente de correlación
cor(w$EdFisica,w$Espanol)
[1] -0.3655434
La función summary() da un resumen descrptivo de los datos.
summary(w)
Nombre genero Matematicas Ciencias Espanol Historia
Ana :1 H:5 Min. :1.800 Min. :6.000 Min. :6.50 Min. :5.500
Andres :1 M:5 1st Qu.:6.000 1st Qu.:6.425 1st Qu.:7.35 1st Qu.:7.250
Carlos :1 Median :6.650 Median :6.850 Median :7.75 Median :8.000
Ines :1 Mean :6.290 Mean :7.650 Mean :7.74 Mean :7.900
Jose :1 3rd Qu.:7.575 3rd Qu.:9.350 3rd Qu.:8.15 3rd Qu.:8.825
Lucia :1 Max. :7.900 Max. :9.700 Max. :9.20 Max. :9.000
(Other):4
EdFisica
Min. :6.000
1st Qu.:7.000
Median :7.250
Mean :7.420
3rd Qu.:7.875
Max. :9.000
En muchas ocasiones (casi siempre :) ) hay datos faltantes. Automaticamente, en R , toda celda con las letras NA es considerada un valor ausente.
Para el uso de algunas funciones se debe informar a R de la existencia de valores extraviados.
# Se llama al archivo con valores extraviados y se almacena en ww
ww<-read.csv("EjemploEstudiantesM_NA.csv",header=T)
# Se calcula la media indicando que hay valores extraviados
mean(ww$Matematicas,na.rm=T)
[1] 6.711111
summary(ww)
Nombre genero Matematicas Ciencias Espanol Historia
Ana :1 H:5 Min. :5.000 Min. :6.000 Min. :6.50 Min. :5.5
Andres :1 M:5 1st Qu.:6.000 1st Qu.:6.425 1st Qu.:7.35 1st Qu.:8.0
Carlos :1 Median :6.800 Median :6.850 Median :7.75 Median :8.0
Ines :1 Mean :6.711 Mean :7.650 Mean :7.74 Mean :8.0
Jose :1 3rd Qu.:7.600 3rd Qu.:9.350 3rd Qu.:8.15 3rd Qu.:8.9
Lucia :1 Max. :7.900 Max. :9.700 Max. :9.20 Max. :9.0
(Other):4 NA's :1 NA's :1
EdFisica
Min. :6.000
1st Qu.:7.000
Median :7.250
Mean :7.420
3rd Qu.:7.875
Max. :9.000
Lugares para aprender https://www.r-bloggers.com/ http://rpubs.com/ https://www.coursera.org/ https://www.edx.org/ https://www.datacamp.com/